1. Technical Field
The present invention relates to an image enlargement method performed by an apparatus that converts a low-resolution image to a high-resolution image, such as a display apparatus that enlarges an inputted low-resolution image according to a resolution of a display device, an image output apparatus such as a printer that enlarges a low-resolution image and outputs the enlarged image, and an imaging apparatus that enlarges an image included in a moving image to generate a still image.
2. Background Art
Conventionally, various methods have been proposed as interpolation enlargement techniques of converting an inputted low-resolution image to a high-resolution image. NPL 1 discloses representative techniques including a nearest neighbor method, a bilinear method, and a bicubic convolution method. In the nearest neighbor method, an interpolation pixel value is determined by selecting a low-resolution pixel nearest an interpolation pixel position. In the bilinear method, the interpolation pixel value is determined by linear interpolation with distances between the interpolation pixel position and four pixels of the low-resolution image that surround the interpolation pixel position. In the bicubic convolution method, the interpolation pixel value is determined by using a sampling function (f(x)=sin c(x)), from neighboring N×N pixels of the low-resolution image that surround the interpolation pixel position.
However, these methods have the following drawbacks. In the nearest neighbor method, the interpolation pixel value is a low-resolution pixel value in the neighborhood of the interpolation pixel position. This being so, when an enlargement factor increases, visual blocks become noticeable and cause degradation in image quality. In the bilinear method and the bicubic convolution method, though the occurrence of blocks as seen in the nearest neighbor method can be suppressed, the resulting image is blurred.
To solve these problems, a method of performing an edge enhancement process using a high-pass enhancement filter before or after interpolation enlargement is often employed. When edge enhancement is performed, however, an artifact called overshoot or undershoot occurs near an edge in the image.
FIG. 8 is a diagram showing an example where overshoot and undershoot occur as a result of edge enhancement.
FIG. 8 shows a level value of a part of a horizontal line in an image. As can be seen from FIG. 8, overshoot 801 and undershoot 802 occur near edges. Thus, when performing the edge enhancement by the high-pass enhancement filter, though a sharp image is obtained, there is also an adverse effect that the image has visual degradation as a neighborhood of an edge in the image appears bright.
FIG. 48 is a diagram showing a technique disclosed in PTL 1.
PTL 1 discloses a means of solving the adverse effect of the edge enhancement in resolution conversion. The following describes the technique disclosed in PTL 1, with reference to FIG. 48.
In FIG. 48, 2901 denotes an original low-resolution image (input image) that is subject to the resolution conversion. 2902 denotes information about an interpolation process relating to the resolution conversion, such as the number of pixels to be interpolated. 2903 denotes an enhancement coefficient determination unit that determines a filter coefficient for performing the edge enhancement, on the basis of the information 2902. 2904 denotes an edge enhanced image generation unit that performs the edge enhancement using the determined enhancement coefficient. 2905 denotes an interpolation pixel generation unit that generates an interpolation pixel by interpolating a pixel value in a designated position, from the edge enhanced low-resolution image. 2906 denotes a comparison unit that compares a pixel of interest in the input image 2901 and an output value of the interpolation pixel generation unit 2905, and outputs a value showing a degree of weighting of each pixel value according to a result of the comparison. 2909 denotes information for designating a range of neighboring pixels of the pixel of interest, from which a maximum value and a minimum value of the pixel value are detected. The comparison unit 2906 calculates the value showing the degree of weighting, on the basis of the information 2909. A weighting synthesis unit 2907 is a synthesis unit that weights the pixel of interest in the low-resolution image inputted from the input image 2901 and the output of the interpolation pixel generation unit 2905 according to the weight outputted from the comparison unit 2906, and synthesizes the weighted pixel and output.
The following describes the processes of the comparison unit 2906 and the weighting synthesis unit 2907 in detail. Let n be the maximum and minimum value detection pixel range (the information 2909) inputted to the comparison unit 2906. When a position of the pixel of interest is given by (i,j), the comparison unit 2906 detects a pixel value of a maximum level and a pixel value of a minimum level from pixels in a range of its neighboring pixel positions (i−n+1, j−n+1) to (i+n, j+n), and outputs the maximum value and the minimum value to the weighting synthesis unit 2907 as weighting coefficients. The weighting synthesis unit 2907 calculates an output pixel on the basis of the weighting coefficients outputted from the comparison unit 2906. In detail, when Pi,j outputted from the interpolation pixel generation unit 2905 is in a range of the maximum value to the minimum value, the weighting synthesis unit 2907 outputs Pi,j. When Pi,j is larger than the maximum value, the weighting synthesis unit 2907 outputs the maximum value. When Pi,j is smaller than the minimum value, the weighting synthesis unit 2907 outputs the minimum value.
In this way, the enlargement process that suppresses edge blurriness can be achieved without causing overshoot and undershoot (overcorrection) associated with edge enhancement.